#include "BDLivro.h"

#include <exception>

BDLivro::BDLivro()
{

	this->CarregaLivros();
	this->Primeiro();

}

BDLivro::~BDLivro()
{

}

void BDLivro::CarregaLivros()
{

	Livro *livroTmp;

	livroTmp = new Livro(1, "1930", "Decca, Edgar Salvadori de", "Pol�tica", 69.70, "2.ed", 1984, "209p");
	this->dados.Insere(livroTmp->GetId(), *livroTmp);

	livroTmp = new Livro(2, "1930", "Decca, Edgar Salvadori de", "Pol�tica", 69.70, "5.ed", 1992, "209p");
	this->dados.Insere(livroTmp->GetId(), *livroTmp);

	livroTmp = new Livro(3, "1964", "Dreifuss", "Pol�tica", 271.30, "", 1981, "814p");
	this->dados.Insere(livroTmp->GetId(), *livroTmp);

	livroTmp = new Livro(4, "10 minutos para aprender Microsoft PowerPoint 2000", "Wempen, Faithe", "Inform�tica", 61.70, "", 2000, "185p");
	this->dados.Insere(livroTmp->GetId(), *livroTmp);

	livroTmp = new Livro(5, "100 anos Santa Marina", "Brandao, Ignacio de Loyola", "Tecnologia qu�mica", 55.70, "2.ed", 1996, "167p");
	this->dados.Insere(livroTmp->GetId(), *livroTmp);

	livroTmp = new Livro(6, "Rafael Bueno Book", "bueno, rafael ademir", "Informatica", 1.00, "1.ed", 2008, "1p");
	this->dados.Insere(livroTmp->GetId(), *livroTmp);

	livroTmp = new Livro(7, "Rafael Bueno Book", "bueno, rafael ademir", "Informatica", 2.00, "2.ed", 2008, "22p");
	this->dados.Insere(livroTmp->GetId(), *livroTmp);

	livroTmp = new Livro(8, "Rafael Bueno Book", "bueno, rafael ademir", "Informatica", 3.00, "3.ed", 2008, "23p");
	this->dados.Insere(livroTmp->GetId(), *livroTmp);

	livroTmp = new Livro(9, "Juliana Bueno Book", "juliana", "Informatica", 3.00, "3.ed", 2008, "23p");
	this->dados.Insere(livroTmp->GetId(), *livroTmp);

	delete livroTmp;

}


void BDLivro::SalvaLivros()
{

}

void BDLivro::MontaPesquisa(int _tipo)
{

}

Livro BDLivro::Seleciona(long _id)
{
	Livro l;
	return l;
}

void BDLivro::Remove(long _id)
{

}

void BDLivro::Primeiro()
{

	this->proximoID = -1;

	while(!this->Final()){
			Livro livro = this->dados.Seleciona(this->proximoID);

			if(livro.GetId() != -1){
				this->proximoID = livro.GetId();
				break;
			}else{
				this->proximoID =+ 1;
			}
	}
}

void BDLivro::Proximo()
{
	this->proximoID +=1;
}

bool BDLivro::Final()
{
	if(this->proximoID > this->dados.Altura())
		return true;
	else
		return false;
}

Livro BDLivro::GetItem()
{
	Livro livro = this->dados.Seleciona(this->proximoID);
	return livro;
}

